home *** CD-ROM | disk | FTP | other *** search
/ Gekikoh Dennoh Club 7 / Gekikoh Dennoh Club Vol. 7 (Japan).7z / Gekikoh Dennoh Club Vol. 7 (Japan) (Track 01).bin / games / otoko / source.lzh / FuncEffect / lastlaser.c < prev    next >
Encoding:
C/C++ Source or Header  |  1999-06-14  |  888 b   |  60 lines

  1. #include <xsp2lib.h>
  2.  
  3. #include "../otoko.h"
  4. #include "../player.h"
  5. #include "../effect.h"
  6. #include "../priority.h"
  7. #include "../damage.h"
  8.  
  9. #define PALET_MAIN    0x0300
  10.  
  11. static short EffectMoveLastLaser (EFFECT *);
  12.  
  13.  
  14. void EffectInitLastLaser (EFFECT * p)
  15. {
  16.     p->y = 256+16;
  17.     p->pt = obj_blaser;
  18.     p->info = PALET_MAIN | PRIORITY_BOMBER;
  19.     p->seq = 0;
  20.     p->seq2 = 0;
  21.     p->func_effect_move = EffectMoveLastLaser;
  22. }
  23.  
  24.  
  25.  
  26. static short EffectMoveLastLaser (EFFECT * p)
  27. {
  28.     switch (p->seq++) {
  29.     case 2:
  30.     case 4:
  31.     case 6:
  32.     case 8:
  33.     case 10:
  34.         p->pt++;
  35.         break;
  36.     case PLAYER_BLASER_END - 10:
  37.     case PLAYER_BLASER_END - 8:
  38.     case PLAYER_BLASER_END - 6:
  39.     case PLAYER_BLASER_END - 4:
  40.     case PLAYER_BLASER_END - 2:
  41.         p->pt--;
  42.         break;
  43.     case PLAYER_BLASER_END:
  44.         return (-1);
  45.         break;
  46.     default:
  47.         break;
  48.     }
  49.  
  50.     p->seq2++;
  51.     if (p->seq2 > 15) {
  52.         p->seq2 = 0;
  53.         p->y -= 16;
  54.     }
  55.     p->y++;
  56.     xobj_set_st (p);
  57.  
  58.     return (0);
  59. }
  60.